Since initial creation of the C programming language by Dennis Ritchie in the 1970's, considerable research and development of programming languages has produced various exception handling mechanisms. Exceptions are program flow deviations in which alternate processing deals with particular error conditions. This requires additional code to establish alternate program flows and to record error circumstances and termination of software execution. The additional code may distract software programmers reviewing main program flow, particularly if large blocks of alternate program are interspersed in the software code under review. The additional code is moreover typically implemented ad hoc in poorly drafted fashion, detracting from code readability and maintainability. While the C programming language is flexible enough to permit such ad hoc program flows, the resultant code is often obscure and defective. To test and debug such code is costly and time consuming. This creates inefficiencies in code production and fails to provide much certainty that errors and defects in new software code have actually been completely eliminated.
Cumbersome and clumsily crafted exception handling code further contributes to increased software bulk in implementing selected software functionalities. Unfortunately, clumsy and cumbersome code is prevalent and ubiquitous in software programs recently developed.
It is accordingly desirable to simplify exception handling flows in new software code. It is additionally desirable to reduce the clutter of repetitive variations of software code created for exception handling methods and mechanisms. Additionally, it is desirable to reduce the absolute number of lines of code in newly coded software. It is further desirable to simplify software error code handling, to reduce code-writing workloads for software programmers, and to permit a greater focus on quality and completeness of new software code during development. It is further desirable to simplify life cycle maintenance processes for newly developed software.